#ifndef FILEITEMWIDGET_H
#define FILEITEMWIDGET_H

#include <QWidget>
#include <QPushButton>
#include <QLabel>
#include <QVBoxLayout>
#include <QHBoxLayout>
#include "clipboardItem.h"
#include <QFileIconProvider>
#include <QFileInfo>

class FileItemWidget : public QWidget {
    Q_OBJECT

public:
    explicit FileItemWidget(const ClipboardItem& item, QWidget *parent = nullptr);
    // 添加一个方法获取存储的 ClipboardItem
    ClipboardItem getItem() const;

signals:
    void copyClicked();
    void deleteClicked();
    void openClicked();  // 打开文件或文件夹的信号
    void favoriteClicked();

private slots:
    void onCopyClicked();
    void onDeleteClicked();
    void onOpenClicked();  // 处理打开文件或文件夹的槽
    void onFavoriteClicked();

private:
    ClipboardItem item;
    QLabel *fileLabel;  // 显示文件或文件夹名称的标签
    QLabel *fileIconLabel; // 用于显示文件图标的标签
    QLabel *titleLabel;            // 文本标签
    QPushButton *copyButton;      // 复制按钮
    QPushButton *deleteButton;    // 删除按钮
    QPushButton *openButton;      // 打开按钮
    QPushButton *favoriteButton;  // 收藏按钮
    QVBoxLayout *mainLayout;      // 主垂直布局
    QHBoxLayout *buttonLayout;   // 按钮的水平布局
    QHBoxLayout *favoriteTextLayout;  // 添加新的布局成员
    void updateFavoriteButtonStyle();  // 添加新的方法声明
};

#endif // FILEITEMWIDGET_H
